placesview: Open location even if mount was not found
authorOndrej Holy <oholy@redhat.com>
Tue, 13 Apr 2021 13:55:19 +0000 (15:55 +0200)
committerOndrej Holy <oholy@redhat.com>
Tue, 13 Apr 2021 15:33:03 +0000 (17:33 +0200)
Some locations have to be mounted, but their mounts are not user-visible
(e.g. smb-browse). Though this is maybe a bit weird, it is how it works
for years. The problem is that the commit 267ea755, which tries to get the
default location for opening, caused regression as it doesn't expect such
possibility. Before this commit, such locations were opened without any
issue, but nothing happens currently after clicking to "Connect" except of
clearing the "Connect to Server" entry. Let's fallback to the original
location if the mount was not found to fix this regression.

Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/1811
gtk/gtkplacesview.c

index 416bffbe8aa6200ed238b833fe7ad1bc13b86449..853c135f8b9097a7ff69d69d766896a6ab06d7fe 100644 (file)
@@ -1243,6 +1243,11 @@ server_mount_ready_cb (GObject      *source_file,
           GMount *mount;
           GFile *root;
 
+          /*
+           * If the mount is not found at this point, it is probably user-
+           * invisible, which happens e.g for smb-browse, but the location
+           * should be opened anyway...
+           */
           mount = g_file_find_enclosing_mount (location, view->cancellable, NULL);
           if (mount)
             {
@@ -1253,6 +1258,10 @@ server_mount_ready_cb (GObject      *source_file,
               g_object_unref (root);
               g_object_unref (mount);
             }
+          else
+            {
+              emit_open_location (view, location, view->open_flags);
+            }
         }
     }